package com.dzx.design.behavioral.observer;

/**
 * @author dzx
 * @ClassName:
 * @Description: 观察者模式
 * @date 2019年08月14日 15:14:23
 */
public class Test {
    public static void main(String[] args) {
        Course course = new Course("java设计模式精讲");
        Teacher teacher = new Teacher("Alpha");
        course.addObserver(teacher);
        Question question = new Question("段朝旭", "java有多少种设计模式？？");
        course.produceQuestion(course, question);
        /**
         * 观察者模式
         * Course课程作为被观察者 需要继承 Observable 类，在有学生提出问题的时候调用父类的
         *         setChanged();
         *         notifyObservers(question) 这两个方法
         * Teacher老师作为观察者 需要实现 Observer 接口 重写update方法，就可以在有问题被学生提出的
         * 时候，自动的收到该问题。
         *
         */
    }
}
